package org.example.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.example.mapper.UserMapper;
import org.example.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

//http://localhost:8081/lg?name=abc&password=123
//@RequestMapping ("/common")
@RestController
public class UserController {
    @Autowired
    UserMapper um;

    //返回数据
    @GetMapping("/lg")
    public int login(User u ,HttpServletRequest req) {
        System.out.println("有人访问了login方法。。。" + u);

//        调用数据层的方法 查询所有数据
//        List<User> users = um.selectList(null);
//        for (int i = 0;i<users.size();i++){
//            System.out.println(users.get(i));
//        }
//条件查询
        QueryWrapper qw = new QueryWrapper();
        qw.eq("username", u.getUsername());
        qw.eq("password", u.getPassword());
        //只查询一条数据
        User user = um.selectOne(qw);
        if (user == null) {
            return User.LOGIN_ERROR;
        } else {
            //登录成功之后，把用户对象添加到session。
            req.getSession().setAttribute("user",user);//对象是user,通过user来存值和传值。
            return User.LOGIN_OK;
        }
    }
    //登录 验证，这里只需要判断验证码是否正确
//    @RequestMapping("/login")
//    public void login(){
//
//    }
//    //用来产生验证码
//    @RequestMapping("/verifyCode")
//    public void generateImage(){
//
//    }




//        List<User> users1 = um.selectList(qw);
//        for (int i = 0;i<users1.size();i++){
//            System.out.println(users1.get(i));
//        }
//        //删除数据
//        um.deleteById(1);
        //注册
        //添加
//        User u1 = new User();
//        u1.setId(155);
//        u1.setPassword("ddd");
//        u1.setUsername("xzs");
//        um.insert(u1);
//
//        //修改
//        User u2 = new User();
//        u2.setPassword("lakak");
//        u2.setUsername("qowo");
//        u2.setId(2);
//        um.updateById(u2);

    //localhost:8081/reg?name=abc&password=123&username=aaa
    //网页传参

    @GetMapping("/reg")
    public int reg(User user) {
        System.out.println("有人访问了reg方法。。。" + user);
        QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("username", user.getUsername());
        qw.eq("password", user.getPassword());
        qw.eq("email", user.getEmail());
        User u = um.selectOne(qw);
        //如果表单中没有对应的用户
        if (u == null) {
            //添加新的到
//            User newuser = new User();
//            newuser.setId(148);
//            newuser.setUsername("mnv");
//            newuser.setPassword("1323");
//            newuser.setEmail("123");
            um.insert(user);//往数据库中插入数据
            return User.REG_USER_HAVE;

        } else {
            return User.LOGIN_ERROR;
        }
//        public ResponseEntity<String> register(User user) {
//            System.out.println("有人访问了reg方法。。。"+user);
//            String username = user.getUsername();
//            String password = user.getPassword();
//            String confirmPassword = user.getConfirmPassword();
//            String email = user.getEmail();
//
//            // 检查确认密码是否与密码相同
//            if (!password.equals(confirmPassword)) {
//                return ResponseEntity.badRequest().body("确认密码与密码不同");
//            }
//
//            // 使用QueryWrapper检查用户名是否已存在
//            QueryWrapper<User> qw = new QueryWrapper<>();
//            qw.eq("username", username);
//            User existingUser = um.selectOne(qw);
//
//            // 如果用户名已存在，则返回错误提示
//            if (existingUser != null) {
//                return ResponseEntity.badRequest().body("用户名已经存在");
//            }
//
//            // 用户名不存在，准备创建新用户
//            User newUser = new User();
//            newUser.setUsername(username);
//            newUser.setPassword(password); // 实际应用中应存储加密后的密码
//            newUser.setEmail(email); // 假设User类有对应的邮箱字段
//            um.insert(newUser);
//
//            return ResponseEntity.ok("注册成功");
//        }
    }




        @PostMapping("/ups")
        public String handleFileUpload(@RequestParam("file") MultipartFile file) {
            if (file.isEmpty()) {
                return "Please select a file to upload.";
            }
            try {
                byte[] bytes = file.getBytes();
                String uploadDir = "E:\\image\\";
                File uploadedFile = new File(uploadDir + file.getOriginalFilename());
                file.transferTo(uploadedFile);
                return "File uploaded successfully!";
            } catch (IOException e) {
                e.printStackTrace();
                return "File upload failed!";
            }
        }



}

